package net.zoneland.knowledge.model;

import net.zoneland.uniflow.client.UserInfo;

import java.io.Serializable;
import java.util.StringJoiner;

/**
 * 水印.
 */
public class WaterMark implements Serializable {

    private static final long serialVersionUID = -3047564867453031421L;

    /**
     * 水印类型， 0为无水印； 1为文字水印.
     */
    private int type;

    /**
     * 文字水印的文字，当type为1时此字段必选.
     */
    private String value;

    /**
     * 水印透明度，非必选，有默认值.
     */
    private String fillStyle;

    /**
     * 水印的字体，非必选，有默认值.
     */
    private String font;

    /**
     * 水印的旋转度，非必选，有默认值.
     */
    private Long rotate;

    /**
     * 水印水平间距，非必选，有默认值.
     */
    private int horizontal;

    /**
     * 水印垂直间距，非必选，有默认值.
     */
    private int vertical;

    @Override
    public String toString() {
        return new StringJoiner(", ", WaterMark.class.getSimpleName() + "[", "]")
                .add("type=" + type)
                .add("value='" + value + "'")
                .add("fillStyle='" + fillStyle + "'")
                .add("font='" + font + "'")
                .add("rotate=" + rotate)
                .add("horizontal=" + horizontal)
                .add("vertical=" + vertical)
                .toString();
    }

    /**
     * 获取 水印类型， 0为无水印； 1为文字水印.
     *
     * @return type 水印类型， 0为无水印； 1为文字水印.
     */
    public int getType() {
        return this.type;
    }

    /**
     * 设置 水印类型， 0为无水印； 1为文字水印.
     *
     * @param type 水印类型， 0为无水印； 1为文字水印.
     */
    public void setType(int type) {
        this.type = type;
    }

    /**
     * 获取 文字水印的文字，当type为1时此字段必选.
     *
     * @return value 文字水印的文字，当type为1时此字段必选.
     */
    public String getValue() {
        return this.value;
    }

    /**
     * 设置 文字水印的文字，当type为1时此字段必选.
     *
     * @param value 文字水印的文字，当type为1时此字段必选.
     */
    public void setValue(String value) {
        this.value = value;
    }

    /**
     * 获取 水印透明度，非必选，有默认值.
     *
     * @return fillStyle 水印透明度，非必选，有默认值.
     */
    public String getFillStyle() {
        return this.fillStyle;
    }

    /**
     * 设置 水印透明度，非必选，有默认值.
     *
     * @param fillStyle 水印透明度，非必选，有默认值.
     */
    public void setFillStyle(String fillStyle) {
        this.fillStyle = fillStyle;
    }

    /**
     * 获取 水印的字体，非必选，有默认值.
     *
     * @return font 水印的字体，非必选，有默认值.
     */
    public String getFont() {
        return this.font;
    }

    /**
     * 设置 水印的字体，非必选，有默认值.
     *
     * @param font 水印的字体，非必选，有默认值.
     */
    public void setFont(String font) {
        this.font = font;
    }

    /**
     * 获取 水印的旋转度，非必选，有默认值.
     *
     * @return rotate 水印的旋转度，非必选，有默认值.
     */
    public Long getRotate() {
        return this.rotate;
    }

    /**
     * 设置 水印的旋转度，非必选，有默认值.
     *
     * @param rotate 水印的旋转度，非必选，有默认值.
     */
    public void setRotate(Long rotate) {
        this.rotate = rotate;
    }

    /**
     * 获取 水印水平间距，非必选，有默认值.
     *
     * @return horizontal 水印水平间距，非必选，有默认值.
     */
    public int getHorizontal() {
        return this.horizontal;
    }

    /**
     * 设置 水印水平间距，非必选，有默认值.
     *
     * @param horizontal 水印水平间距，非必选，有默认值.
     */
    public void setHorizontal(int horizontal) {
        this.horizontal = horizontal;
    }

    /**
     * 获取 水印垂直间距，非必选，有默认值.
     *
     * @return vertical 水印垂直间距，非必选，有默认值.
     */
    public int getVertical() {
        return this.vertical;
    }

    /**
     * 设置 水印垂直间距，非必选，有默认值.
     *
     * @param vertical 水印垂直间距，非必选，有默认值.
     */
    public void setVertical(int vertical) {
        this.vertical = vertical;
    }
}
